package com.yxy.service;

import com.yxy.common.PageResult;
import com.yxy.pojo.dto.HotelDTO;
import com.yxy.pojo.dto.HotelPageQueryDTO;
import com.yxy.pojo.dto.HotelSpecsDTO;
import com.yxy.pojo.dto.HotelSpecsPageQueryDTO;
import com.yxy.pojo.vo.HotelVO;

import java.util.List;
import java.util.Map;

public interface HotelService {
    /**
     * 分页查询
     * @param hotelPageQueryDTO
     * @return
     */
    PageResult pageQuery(HotelPageQueryDTO hotelPageQueryDTO);

    /**
     * 新增
     * @param hotelDTO
     */
    void add(HotelDTO hotelDTO);

    /**
     * 批量删除
     * @param ids
     */
    void batchDelete(List<Integer> ids);

    /**
     * 修改状态
     * @param id
     * @param status
     */
    void updateStatus(int id, int status);

    /**
     * 修改
     * @param hotelDTO
     */
    void update(HotelDTO hotelDTO);

    /**
     * 分页查询规格
     * @param hotelSpecsPageQueryDTO
     * @return
     */
    PageResult pageQuerySpecs(HotelSpecsPageQueryDTO hotelSpecsPageQueryDTO);

    /**
     * 新增规格
     * @param hotelSpecsDTO
     */
    void addSpecs(HotelSpecsDTO hotelSpecsDTO);

    /**
     * 修改规格
     * @param hotelSpecsDTO
     */
    void updateSpecs(HotelSpecsDTO hotelSpecsDTO);

    /**
     * 批量删除规格
     * @param ids
     */
    void batchDeleteSpecs(List<Integer> ids);

    /**
     * 高级查询
     * @param hotelPageQueryDTO
     * @return
     */
    PageResult advancedPageQuery(HotelPageQueryDTO hotelPageQueryDTO);

    /**
     *  获取酒店区域
     * @return
     */
    Map<String, List<String>> getHotelArea();

    /**
     * 根据id查询
     * @param id
     * @return
     */
    HotelVO getHotelById(int id);
}
